package cn.itcast.nems.journal.dto;

import cn.itcast.nems.studentrecord.dao.entity.JournalTransferType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class JournalTransferInfoVDto {
    private String id;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    private LocalDateTime bizDate;
    private Integer targetClazzId;
    private String targetClazzName;
    private Integer targetClazzPrice;
    private String targetClazzPriceFormatted;
    private String targetClazzSubjectId;
    private String targetClazzSubjectName;
    private String targetClazzCampusId;
    private String targetClazzCampusName;
    private String targetClazzModelId;
    private String targetClazzModelName;
    private LocalDate targetClazzStartDate;
    private String targetClazzTypeId;
    private Boolean targetClazzUpgradeable;
    private LocalDate targetClazzPredictionGraduationDate;
    private Integer transferQuantity;
    private String state;
    private JournalTransferType type;
    private Boolean specialFlag;
    private String remark;
    private Integer tenantId;
    private Integer subtenantId;
    private String createdBy;
    private String createdByName;
    private String createdByAndName;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    private LocalDateTime createdDatetime;
    private List<JournalTransferDiscountVDto> discountList;
    private List<JournalTransferLineVDto> lineList;
    private String formId;
    private String reasonCode;
    private String reasonDescription;
    private String direction;
}
